/**
 * 个人信息管理服务层
 */

// 模拟用户数据
const mockUserData = {
  avatar: 'https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png',
  name: '林晓峰',
  phone: '13800138000',
  email: 'linxf@example.com',
  gender: '男',
  birthday: '1990-01-01',
  organization: '广西壮族自治区疾病预防控制中心',
  position: '应急值守员',
  employeeId: 'EMP20230001',
  bio: '负责应急值守系统的日常管理和维护工作，具有丰富的应急处理经验。',
  lastLogin: '2025-11-04 14:30:25'
};

/**
 * 获取用户信息
 */
export function getUserInfo() {
  return new Promise((resolve) => {
    // 模拟网络延迟
    setTimeout(() => {
      // 从本地存储获取或使用模拟数据
      const savedData = localStorage.getItem('userInfo');
      if (savedData) {
        resolve(JSON.parse(savedData));
      } else {
        resolve({ ...mockUserData });
      }
    }, 500);
  });
}

/**
 * 更新用户信息
 */
export function updateUserInfo(userInfo) {
  return new Promise((resolve, reject) => {
    // 模拟网络延迟
    setTimeout(() => {
      try {
        // 保存到本地存储
        localStorage.setItem('userInfo', JSON.stringify(userInfo));
        resolve({ success: true });
      } catch (error) {
        reject(new Error('保存失败'));
      }
    }, 800);
  });
}

/**
 * 上传头像
 */
export function uploadAvatar(file) {
  return new Promise((resolve, reject) => {
    // 模拟上传过程
    setTimeout(() => {
      if (file.size > 2 * 1024 * 1024) {
        reject(new Error('文件大小不能超过2MB'));
      } else {
        // 实际项目中这里应该调用上传接口
        resolve({
          url: URL.createObjectURL(file)
        });
      }
    }, 1000);
  });
}

/**
 * 修改密码
 */
export function changePassword(passwordData) {
  return new Promise((resolve, reject) => {
    // 模拟网络延迟
    setTimeout(() => {
      // 从本地存储获取保存的密码（模拟用途，实际应该在后端验证）
      const savedPassword = localStorage.getItem('userPassword') || '123456';
      
      // 验证旧密码
      if (passwordData.oldPassword !== savedPassword) {
        reject(new Error('旧密码不正确'));
        return;
      }
      
      // 保存新密码
      try {
        localStorage.setItem('userPassword', passwordData.newPassword);
        resolve({ success: true, message: '密码修改成功' });
      } catch (error) {
        reject(new Error('密码修改失败，请稍后重试'));
      }
    }, 800);
  });
}

